package agenceVoyageVirtuel.server;

import java.util.List;

import agenceVoyageVirtuel.client.beans.AdresseData;
import agenceVoyageVirtuel.client.beans.ApparenceData;
import agenceVoyageVirtuel.client.beans.AvatarData;
import agenceVoyageVirtuel.client.beans.CarteData;
import agenceVoyageVirtuel.client.beans.ClientData;
import agenceVoyageVirtuel.client.beans.CommandeData;
import agenceVoyageVirtuel.client.beans.EpoqueData;
import agenceVoyageVirtuel.client.beans.MetierData;
import agenceVoyageVirtuel.client.beans.OptionData;
import agenceVoyageVirtuel.client.beans.PackData;
import agenceVoyageVirtuel.client.beans.SexeData;
import agenceVoyageVirtuel.client.beans.SouvenirData;
import agenceVoyageVirtuel.client.beans.VoyageData;
import agenceVoyageVirtuel.client.rpc.RpcCallService;
import agenceVoyageVirtuel.server.base.DB_Adresse;
import agenceVoyageVirtuel.server.base.DB_Apparence;
import agenceVoyageVirtuel.server.base.DB_Avatar;
import agenceVoyageVirtuel.server.base.DB_Carte;
import agenceVoyageVirtuel.server.base.DB_Client;
import agenceVoyageVirtuel.server.base.DB_Commande;
import agenceVoyageVirtuel.server.base.DB_Epoque;
import agenceVoyageVirtuel.server.base.DB_Metier;
import agenceVoyageVirtuel.server.base.DB_Option;
import agenceVoyageVirtuel.server.base.DB_Pack;
import agenceVoyageVirtuel.server.base.DB_Sexe;
import agenceVoyageVirtuel.server.base.DB_Souvenir;
import agenceVoyageVirtuel.server.base.DB_Voyage;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;

/**
 * The server side implementation of the RPC service.
 */
@SuppressWarnings("serial")
public class RpcCallServiceImpl extends RemoteServiceServlet implements RpcCallService {
	@Override
	public List<PackData> getPacks() {
		DB_Pack db = new DB_Pack();
		List<PackData> packDatas = db.getPacks();
		
		return packDatas;
	}
	
	@Override
	public List<ApparenceData> getApparences() {
		DB_Apparence db = new DB_Apparence();
		List<ApparenceData> apparenceDatas = db.getApparences();
		
		return apparenceDatas;
	}
	
	@Override
	public List<CommandeData> getHistoriqueCommandes(int idClient) {
		DB_Commande db = new DB_Commande();
		List<CommandeData> commandeDatas = db.getHistoriqueCommandes(idClient);
		
		return commandeDatas;
	}
	
	@Override
	public List<EpoqueData> getEpoques() {
		DB_Epoque db = new DB_Epoque();
		List<EpoqueData> epoqueDatas = db.getEpoques();
		
		return epoqueDatas;
	}
	
	@Override
	public List<MetierData> getMetiers() {
		DB_Metier db = new DB_Metier();
		List<MetierData> metierDatas = db.getMetiers();
		
		return metierDatas;
	}
	
	@Override
	public List<OptionData> getOptions() {
		DB_Option db = new DB_Option();
		List<OptionData> optionDatas = db.getOptions();
		
		return optionDatas;
	}
	
	@Override
	public List<SexeData> getSexes() {
		DB_Sexe db = new DB_Sexe();
		List<SexeData> sexeDatas = db.getSexes();
		
		return sexeDatas;
	}
	
	@Override
	public List<SouvenirData> getSouvenirs() {
		DB_Souvenir db = new DB_Souvenir();
		List<SouvenirData> souvenirDatas = db.getSouvenirs();
		
		return souvenirDatas;
	}
	
	@Override
	public List<VoyageData> getVoyages() {
		DB_Voyage db = new DB_Voyage();
		List<VoyageData> souvenirDatas = db.getVoyages();
		
		return souvenirDatas;
	}

	@Override
	public ClientData isAuthentifie(String email, String password) {
		DB_Client db = new DB_Client();
		ClientData clientData = db.isAuthentifie(email, password);

		return clientData;
	}

	@Override
	public List<AdresseData> getAdressesUtilisees(ClientData clientCourant) {
		DB_Adresse db = new DB_Adresse();
		List<AdresseData> adresseDatas = db.getAdressesUtilisees(clientCourant);
		
		return adresseDatas;
	}

	@Override
	public List<CarteData> getCartesUtilisees(ClientData clientCourant) {
		DB_Carte db = new DB_Carte();
		List<CarteData> adresseDatas = db.getCartesUtilisees(clientCourant);
		
		return adresseDatas;
	}

	@Override
	public List<AvatarData> getAvatarsUtilisees(ClientData clientCourant) {
		DB_Avatar db = new DB_Avatar();
		List<AvatarData> avatarDatas = db.getAvatarsUtilisees(clientCourant);
		
		return avatarDatas;
	}
	
	@Override
	public void commander (CommandeData commandeEnCours) {
		DB_Commande db = new DB_Commande();
		db.commander(commandeEnCours);
		
		return;	
	}

	@Override
	public void creerClient(ClientData client) {
		DB_Client db = new DB_Client();
		db.creerClient(client);
		
		return;	
	}

	@Override
	public void creerCarte(CarteData carte) {
		DB_Carte db = new DB_Carte();
		db.creerCarte(carte);
		
		return;	
	}

	@Override
	public void creerAdresse(AdresseData adresse) {
		DB_Adresse db = new DB_Adresse();
		db.creerAdresse(adresse);
		
		return;	
	}

	@Override
	public void creerAvatar(AvatarData avatar) {
		DB_Avatar db = new DB_Avatar();
		db.creerAvatar(avatar);
		
		return;	
	}

	@Override
	public void creerApparence(String nouvelleApparence) {
		DB_Apparence db = new DB_Apparence();
		db.creerApparence(nouvelleApparence);
		
		return;
	}

	@Override
	public void creerEpoque(String nouvelleEpoque) {
		DB_Epoque db = new DB_Epoque();
		db.creerEpoque(nouvelleEpoque);
		
		return;
	}

	@Override
	public void creerOption(String nouvelleOption, int tarifOption) {
		DB_Option db = new DB_Option();
		db.creerOption(nouvelleOption, tarifOption);
		
		return;
	}

	@Override
	public void creerSouvenir(String nouveauSouvenir, String descriptionSouvenir, int tarifSouvenir) {
		DB_Souvenir db = new DB_Souvenir();
		db.creerSouvenir(nouveauSouvenir, descriptionSouvenir, tarifSouvenir);
	
		return;
	}

	@Override
	public void creerSexe(String nouveauSexe) {
		DB_Sexe db = new DB_Sexe();
		db.creerSexe(nouveauSexe);
		
		return;
	}

	@Override
	public void creerVoyage(String nouveauVoyage, boolean reel, int tarifVoyage, String nomImage) {
		DB_Voyage db = new DB_Voyage();
		db.creerVoyage(nouveauVoyage, reel, tarifVoyage, nomImage);
		
		return;
	}
}
